package Offer.offer2019;

import java.util.LinkedList;
import java.util.Queue;

/**
 * 用两个队列实现栈
 *
 * @author: leiwenkang02@meituan.com
 * @date: 2019/4/19
 * @time: 12:51
 */
public class Offer07a {
    private Queue<Integer> queue1 = new LinkedList<>();
    private Queue<Integer> queue2 = new LinkedList<>();

    public void add(int value) {
        //元素添加到非空的list中
        if (!queue2.isEmpty()) {
            queue2.add(value);
        } else {
            queue1.add(value);
        }
    }


    public int remove() {
        //1.先将非空的list的元素移动到空的list中
        if (!queue2.isEmpty()) {
            //2.先将stack1中的元素全部移到stack2
            while (queue2.size() > 1) {
                queue1.add(queue2.remove());
            }
            return queue2.remove();
        } else if (!queue1.isEmpty()) {
            //2.先将stack1中的元素全部移到stack2
            while (queue1.size() > 1) {
                queue2.add(queue1.remove());
            }
            return queue1.remove();
        } else {
            throw new RuntimeException("元素为空！");
        }
    }
}
